/*
 * Copyright (c) 2025 Huawei Device, Inc. Ltd. and <马弓手>.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "FetchUpdateOptions.h"

FetchUpdateOptions::FetchUpdateOptions()
{
    
}
void FetchUpdateOptions::InitFetchUpdateOptions(cJSON* json)
{
    if(json == NULL)
        return;
    if(cJSON_GetObjectItem(json, "config-file")) {
        m_strConfigUrl = cJSON_GetObjectItem(json, "config-file")->valuestring;
    }
    
    if(cJSON_GetObjectItem(json, "request-headers")) {
        cJSON* pHeaders = cJSON_GetObjectItem(json, "request-headers");
        if(pHeaders->type == cJSON_Object) {
            pHeaders = pHeaders->child;    
            while(pHeaders != NULL) {
                string strName = pHeaders->string;
                if(pHeaders->type == cJSON_String) {
                    string strValue = pHeaders->valuestring;
                    m_requestHeaders[strName] = strValue;
                }
               pHeaders = pHeaders->next;    
            }
        }
    }
}
void FetchUpdateOptions::InitFetchUpdateOptions(const string &strConfigUrl, const map<string, string>& requestHeaders)
{
    m_strConfigUrl = strConfigUrl;
    m_requestHeaders = requestHeaders;
}
string FetchUpdateOptions::getConfigUrl()
{
    return m_strConfigUrl;
}
map<string, string> FetchUpdateOptions::getRequestHeaders()
{
    return m_requestHeaders;
}
void FetchUpdateOptions::setConfigUrl(const string strConfigUrl)
{
    m_strConfigUrl = strConfigUrl;
}
void FetchUpdateOptions::setRequestHeader(const map<string, string>& requestHeaders)
{
    m_requestHeaders = requestHeaders;
}